package com.course.masterservice;

import com.course.entity.User;

import javax.servlet.http.HttpServletRequest;
import java.util.Map;

/**
 * @Copyright: Copyright (c)  林中小鸟  All rights reserved.
 * @author: moon
 * @date: 2022/7/5 14:59
 * @Description: **********************
 */
public interface LoginTokenService {

    /**
     * 创建令牌
     */
    Map<String, Object> createToken(User loginUser);

    /**
     * 获取用户身份信息
     *
     * @return 用户信息
     */
    User getLoginUser() ;

    /**
     * 根据request获取请求token
     */
    String getToken(HttpServletRequest request) ;

    /**
     * 获取用户身份信息
     *
     * @return 用户信息
     */
    User getLoginUser(String token) ;

    /**
     * 设置用户身份信息
     */
    void setLoginUser(User loginUser) ;

    /**
     * 删除用户缓存信息
     */
    void delLoginUser(String token);

    /**
     * 验证令牌有效期，相差不足120分钟，自动刷新缓存
     *
     * @param loginUser
     */
    void verifyToken(User loginUser) ;

    /**
     * 刷新令牌有效期
     *
     * @param loginUser 登录信息
     */
    void refreshToken(User loginUser);

}
